package com.wicket.okrbff.biz.service.impl;

import cn.hutool.core.bean.BeanUtil;
import com.wicket.okrbff.biz.service.ReportService;
import com.wicket.okrbff.biz.service.dto.req.*;
import com.wicket.okrbff.biz.service.dto.res.*;
import com.wicket.okrbff.common.ro.OkrResult;
import com.wicket.okrbff.common.ro.OkrResult;
import com.wicket.okrbff.common.util.CommonFunctionHelper;
import com.wicket.okrbff.common.util.RedisUtil;
import javax.annotation.Resource;
import org.apache.skywalking.apm.toolkit.trace.Tag;
import org.apache.skywalking.apm.toolkit.trace.Tags;
import org.apache.skywalking.apm.toolkit.trace.Trace;
import org.springframework.stereotype.Service;
import com.wicket.okrapp.integration.FwAppSystemTestDomainClient;
import com.wicket.okrapp.integration.FwAppReportClient;
import com.wicket.okrapp.integration.dto.ImplementReportTaskOperateElementJudgeComRespDto;
import com.wicket.okrapp.integration.dto.ImplementReportTaskOperateElementJudgeComReqDto;
import com.wicket.okrapp.integration.dto.ImplementSingleContentGenReportTaskComRespDto;
import com.wicket.okrapp.integration.dto.ImplementSingleContentGenReportTaskComReqDto;
import com.wicket.okrbff.common.exception.Assert;
import com.wicket.okrapp.integration.dto.ImplementGiveGracePeriodTimeComRespDto;
import com.wicket.okrapp.integration.dto.ImplementGiveGracePeriodTimeComReqDto;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@Service
public class ReportServiceImpl implements ReportService {

  @Resource
  private RedisUtil redisUtil;
@Resource
  FwAppSystemTestDomainClient fwAppSystemTestDomainClient;

@Resource
  FwAppReportClient fwAppReportClient;
/**
   * B3-执行单内容汇报任务补偿处理[7140]
   * gen by moon at 1/7/2024, 3:03:06 AM
   */
    @Trace(operationName = "B3-执行单内容汇报任务补偿处理")
    @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Override
  public BffImplementSingleContentGenReportTaskRespDto implementSingleContentGenReportTask(BffImplementSingleContentGenReportTaskReqDto reqDto){
      
       
       ImplementReportTaskOperateElementJudgeComRespDto implementReportTaskOperateElementJudgeComRespDto_1 =null;
//virtualUsage D3-执行汇报任务操作元素判断(公共)  44486
      ImplementReportTaskOperateElementJudgeComRespDto implementReportTaskOperateElementJudgeComRespDto = null;
    ImplementReportTaskOperateElementJudgeComReqDto implementReportTaskOperateElementJudgeComReqDto=new ImplementReportTaskOperateElementJudgeComReqDto();
  if(reqDto!=null){
      implementReportTaskOperateElementJudgeComReqDto.setEvaObjTargetCycleId(reqDto.getEvaObjTargetCycleId());//SimpleFieldAssign//sourceId:1022260_1_44486
implementReportTaskOperateElementJudgeComReqDto.setCycleId(reqDto.getCycleId());//SimpleFieldAssign//sourceId:1022261_1_44486
      implementReportTaskOperateElementJudgeComReqDto.setTargetCycleContentId(reqDto.getTargetCycleContentId());//SimpleFieldAssign//sourceId:1015181_1_44486
implementReportTaskOperateElementJudgeComReqDto.setEvaluationTemplateId(reqDto.getEvaluationTemplateId());//SimpleFieldAssign//sourceId:1015103_1_44486
    }
  
    /*D3-执行汇报任务操作元素判断(公共)[7147]   */
    Assert.isNull(implementReportTaskOperateElementJudgeComReqDto.getEvaObjTargetCycleId(),"B3-执行单内容汇报任务补偿处理-D3-执行汇报任务操作元素判断(公共)-被评对象目标周期ID不能为空",false);
Assert.isNull(implementReportTaskOperateElementJudgeComReqDto.getCycleId(),"B3-执行单内容汇报任务补偿处理-D3-执行汇报任务操作元素判断(公共)-周期ID不能为空",false);
Assert.isNull(implementReportTaskOperateElementJudgeComReqDto.getTargetCycleContentId(),"B3-执行单内容汇报任务补偿处理-D3-执行汇报任务操作元素判断(公共)-关联目标内容ID不能为空",false);
Assert.isNull(implementReportTaskOperateElementJudgeComReqDto.getEvaluationTemplateId(),"B3-执行单内容汇报任务补偿处理-D3-执行汇报任务操作元素判断(公共)-冗余评价模板ID不能为空",false);
      implementReportTaskOperateElementJudgeComRespDto = fwAppSystemTestDomainClient.implementReportTaskOperateElementJudgeCom(implementReportTaskOperateElementJudgeComReqDto).getData()/*vcase invoke 跨dubbo调用;*/;
      
      
      implementReportTaskOperateElementJudgeComRespDto_1 = implementReportTaskOperateElementJudgeComRespDto;
if((reqDto!= null&& reqDto.getReportTaskOperation() != null )) {
        //if(B3-执行单内容汇报任务调度.汇报任务验证操作 值不等于空 )  44487
        
ImplementSingleContentGenReportTaskComRespDto implementSingleContentGenReportTaskComRespDto = null;
    if(implementReportTaskOperateElementJudgeComRespDto !=null){
          ImplementSingleContentGenReportTaskComReqDto implementSingleContentGenReportTaskComReqDto=new ImplementSingleContentGenReportTaskComReqDto();
  if(reqDto!=null){
      implementSingleContentGenReportTaskComReqDto.setReportTaskOperation(reqDto.getReportTaskOperation());//SimpleFieldAssign//sourceId:1015136_1_44488
implementSingleContentGenReportTaskComReqDto.setCycleId(reqDto.getCycleId());//SimpleFieldAssign//sourceId:1016595_1_44488
implementSingleContentGenReportTaskComReqDto.setEvaObjTargetCycleId(reqDto.getEvaObjTargetCycleId());//SimpleFieldAssign//sourceId:1015137_1_44488
implementSingleContentGenReportTaskComReqDto.setEvaluationTemplateId(reqDto.getEvaluationTemplateId());//SimpleFieldAssign//sourceId:1012685_1_44488
    }
if(implementReportTaskOperateElementJudgeComRespDto!=null){
 //     implementSingleContentGenReportTaskComReqDto.setExecuteCycleStageId(implementReportTaskOperateElementJudgeComRespDto.getExecuteCycleStageId());//SimpleFieldAssign//sourceId:1022320_1_44488
//implementSingleContentGenReportTaskComReqDto.setCycleStageDataId(implementReportTaskOperateElementJudgeComRespDto.getCycleStageDataId());//SimpleFieldAssign//sourceId:1025415_1_44488
implementSingleContentGenReportTaskComReqDto.setTaskId(implementReportTaskOperateElementJudgeComRespDto.getTaskId());//SimpleFieldAssign//sourceId:1025416_1_44488
    }
  
    /*D3-执行单内容汇报任务操作(公共)[7141]   */
    Assert.isNull(implementSingleContentGenReportTaskComReqDto.getCycleId(),"B3-执行单内容汇报任务补偿处理-D3-执行单内容汇报任务操作(公共)-周期ID不能为空",false);
Assert.isNull(implementSingleContentGenReportTaskComReqDto.getEvaObjTargetCycleId(),"B3-执行单内容汇报任务补偿处理-D3-执行单内容汇报任务操作(公共)-被评对象目标周期ID不能为空",false);
Assert.isNull(implementSingleContentGenReportTaskComReqDto.getEvaluationTemplateId(),"B3-执行单内容汇报任务补偿处理-D3-执行单内容汇报任务操作(公共)-冗余评价模板ID不能为空",false);
      implementSingleContentGenReportTaskComRespDto = fwAppReportClient.implementSingleContentGenReportTaskCom(implementSingleContentGenReportTaskComReqDto).getData()/*vcase invoke 跨dubbo调用;*/;
      
      
      
           }
      }
BffImplementSingleContentGenReportTaskRespDto retData = new BffImplementSingleContentGenReportTaskRespDto();
  if(implementReportTaskOperateElementJudgeComRespDto_1!=null){
      retData.setReportTaskCompElement(implementReportTaskOperateElementJudgeComRespDto_1.getReportTaskCompElement());//SimpleFieldAssign//sourceId:1015106_1
retData.setReportTaskPlusSetElement(implementReportTaskOperateElementJudgeComRespDto_1.getReportTaskPlusSetElement());//SimpleFieldAssign//sourceId:1022262_1
    }
  

  
  
return retData;
  }
/**
   * B3执行给予宽限时间量[8282]
   * gen by moon at 1/6/2024, 11:51:57 PM
   */
    @Trace(operationName = "B3执行给予宽限时间量")
    @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Override
  public BffImplementGiveGracePeriodTimeRespDto implementGiveGracePeriodTime(BffImplementGiveGracePeriodTimeReqDto reqDto){


       //步骤0: D3执行给予宽限时间量(公共) - implementGiveGracePeriodTimeCom
     ImplementGiveGracePeriodTimeComRespDto implementGiveGracePeriodTimeComRespDto = null;
    ImplementGiveGracePeriodTimeComReqDto implementGiveGracePeriodTimeComReqDto=new ImplementGiveGracePeriodTimeComReqDto();
  if(reqDto!=null){
      implementGiveGracePeriodTimeComReqDto.setTaskId(reqDto.getTaskId());//SimpleFieldAssign//sourceId:1475294_1
implementGiveGracePeriodTimeComReqDto.setTimeUnitType(reqDto.getTimeUnitType());//SimpleFieldAssign//sourceId:1475494_1
implementGiveGracePeriodTimeComReqDto.setApplyDelayDays(reqDto.getApplyDelayDays());//SimpleFieldAssign//sourceId:1475295_1
implementGiveGracePeriodTimeComReqDto.setReplenishDelayDays(reqDto.getReplenishDelayDays());//SimpleFieldAssign//sourceId:1475296_1
    }

    /*D3执行给予宽限时间量(公共)[8280]   */
    Assert.isNull(implementGiveGracePeriodTimeComReqDto.getTaskId(),"B3执行给予宽限时间量-D3执行给予宽限时间量(公共)-任务ID不能为空",false);
Assert.isNull(implementGiveGracePeriodTimeComReqDto.getTimeUnitType(),"B3执行给予宽限时间量-D3执行给予宽限时间量(公共)-时间单位类型不能为空",false);
      implementGiveGracePeriodTimeComRespDto = fwAppReportClient.implementGiveGracePeriodTimeCom(implementGiveGracePeriodTimeComReqDto).getData()/*vcase invoke 跨dubbo调用;*/;




BffImplementGiveGracePeriodTimeRespDto retData = new BffImplementGiveGracePeriodTimeRespDto();





return retData;
  }
/**
   * B3执行单内容汇报任务补偿或补报处理[7140]
   * gen by moon at 1/7/2024, 9:34:03 PM
   */
    @Trace(operationName = "B3执行单内容汇报任务补偿或补报处理")
    @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Override
  public BffImplementSingleContentReportTaskCompensateOrFillReportRespDto implementSingleContentReportTaskCompensateOrFillReport(BffImplementSingleContentReportTaskCompensateOrFillReportReqDto reqDto){


       //步骤0: D3-执行单内容汇报任务操作(公共) - implementSingleContentGenReportTaskCom
     ImplementSingleContentGenReportTaskComRespDto implementSingleContentGenReportTaskComRespDto = null;
    ImplementSingleContentGenReportTaskComReqDto implementSingleContentGenReportTaskComReqDto=new ImplementSingleContentGenReportTaskComReqDto();
  if(reqDto!=null){
      implementSingleContentGenReportTaskComReqDto.setReportTaskOperation(reqDto.getReportTaskOperation());//SimpleFieldAssign//sourceId:1015136_1
implementSingleContentGenReportTaskComReqDto.setEvaObjTargetCycleId(reqDto.getEvaObjTargetCycleId());//SimpleFieldAssign//sourceId:1015137_1
implementSingleContentGenReportTaskComReqDto.setCycleId(reqDto.getCycleId());//SimpleFieldAssign//sourceId:1016595_1
implementSingleContentGenReportTaskComReqDto.setEvaluationTemplateId(reqDto.getEvaluationTemplateId());//SimpleFieldAssign//sourceId:1012685_1
implementSingleContentGenReportTaskComReqDto.setTaskId(reqDto.getTaskId());//SimpleFieldAssign//sourceId:1475816_1
implementSingleContentGenReportTaskComReqDto.setTimeUnitType(reqDto.getTimeUnitType());//SimpleFieldAssign//sourceId:1475509_1
implementSingleContentGenReportTaskComReqDto.setReplenishDelayDays(reqDto.getReplenishDelayDays());//SimpleFieldAssign//sourceId:1475510_1
    }

    /*D3-执行单内容汇报任务操作(公共)[7141]   */
    Assert.isNull(implementSingleContentGenReportTaskComReqDto.getEvaObjTargetCycleId(),"B3执行单内容汇报任务补偿或补报处理-D3-执行单内容汇报任务操作(公共)-被评对象目标周期ID不能为空",false);
Assert.isNull(implementSingleContentGenReportTaskComReqDto.getCycleId(),"B3执行单内容汇报任务补偿或补报处理-D3-执行单内容汇报任务操作(公共)-周期ID不能为空",false);
Assert.isNull(implementSingleContentGenReportTaskComReqDto.getEvaluationTemplateId(),"B3执行单内容汇报任务补偿或补报处理-D3-执行单内容汇报任务操作(公共)-冗余评价模板ID不能为空",false);
      implementSingleContentGenReportTaskComRespDto = fwAppReportClient.implementSingleContentGenReportTaskCom(implementSingleContentGenReportTaskComReqDto).getData()/*vcase invoke 跨dubbo调用;*/;




BffImplementSingleContentReportTaskCompensateOrFillReportRespDto retData = new BffImplementSingleContentReportTaskCompensateOrFillReportRespDto();





return retData;
  }
  //
}
